1. Technical Field
The present invention relates in general to a method and system for data processing and, in particular, to data processing within a non-uniform memory access (NUMA) data processing system. Still more particularly, the present invention relates to a NUMA data processing system and method of reservation management in a NUMA data processing system.
2. Description of the Related Art
In shared memory multiprocessor (MP) data processing systems, each of the multiple processors in the system may access and modify data stored in the shared memory. In order to synchronize access to a particular granule (e.g., cache line) of memory between multiple processors, load-reserve and store-conditional instructions are often employed. For example, load-reserve and store-conditional instructions have been implemented in the PowerPC.TM. instruction set architecture with opcodes associated with the LARX and STCX mnemonics, respectively.
In bus-based shared memory MP data processing systems that support load-reserve and store-conditional instructions, each processor within the system is equipped with a reservation register. When a processor executes a load-reserve to a memory granule, the processor loads some or all of the contents of the memory granule into one of the processor's internal registers and the address of the memory granule into the processor's reservation register. The requesting processor is then said to have a reservation with respect to the memory granule. The processor may then perform an atomic update to the reserved memory granule utilizing a store-conditional instruction.
When a processor executes a store-conditional to a memory granule for which the processor holds a reservation, the processor stores the contents of a designated register to the memory granule and then clears the reservation. If the processor does not have a reservation for the memory granule, the store-conditional instruction fails and the memory update is not performed. In general, the processor's reservation is cleared if a remote processor requests exclusive access to the memory granule for purposes of modifying it (the request is made visible to all processors on the shared bus) or the reserving processor executes a store-conditional instruction. If only one reservation is permitted per processor, a processor's current reservation will also be cleared if the processor executes a load-reserve to another memory granule.
Recently, there has been increased interest in a shared memory MP architecture known as non-uniform memory access (NUMA). A typical NUMA system includes a number of processing nodes, each containing one or more processors, a local system memory, and other devices coupled to a local interconnect. The processing nodes are interconnected by a relatively high latency node interconnect. Because store operations performed by a processor in one processing node are not necessarily made visible to all other processors in a NUMA system, the reservation management techniques utilized in shared-bus MP data processing systems cannot be directly applied to NUMA computer systems. Consequently, in NUMA computer systems, a global reservation directory has been employed within each processing node to maintain reservations of all processors within the system for memory granules in the local system memory. This global implementation of reservation management is somewhat problematical because as additional processing nodes are added to the NUMA computer system, the number of processors can exceed the size of the global reservation directory at each processing node. In addition, it is desirable to permit the processing nodes to support diverse numbers of processors and different processor configurations; however, it may be difficult to number or tag diverse processors in a consistent manner across all processing nodes so that the processors'reservations can be appropriately tracked in the global reservation directories.
As should thus be apparent, it would be useful and desirable to provide a NUMA computer system having an improved method and system for reservation management.